package clara.azin.view;

import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.HTML.Tag;
import javax.swing.text.html.HTMLEditorKit.ParserCallback;


//Effettua un callback su una pagina, filtrando alcuni elementi di testo
public class MyCallback extends ParserCallback{
	
	public Tag tag;
	private ContentView view;
	

	//Costruisce il callback
	public MyCallback(ContentView view){
		this.view = view;
	}
	
	@Override
	public void handleEndTag(Tag arg0, int arg1) {
		this.tag = null;
		if (arg0 == Tag.P) {
			view.content.append("\n");
		} else if (arg0 == Tag.TD) {
			view.content.append(" | ");
		} else if (arg0 == Tag.TR) {
			view.content.append("\n");
		} 
	}

	@Override
	public void handleStartTag(Tag arg0, MutableAttributeSet arg1, int arg2) {
		this.tag = arg0;
		if (arg0 == Tag.P) {
			view.content.append("\n");
		} else if (arg0 == Tag.LI) {
			view.content.append("\n");
			view.content.append("- ");
		}
	}

	@Override
	public void handleText(char[] arg0, int arg1) {
		String text = String.valueOf(arg0);
		
		if (tag == Tag.SCRIPT || tag == Tag.STYLE) {
			return;
		} else if (tag==Tag.TITLE) {
			view.setText(text);
		} else {
			view.content.append(text);
		}	
	}

	@Override
	public void handleSimpleTag(Tag arg0, MutableAttributeSet arg1, int arg2) {
		if (arg0 == Tag.BR) view.content.append("\n"); 
	}
	
}
